% fname: routing_oddeven__sel_random__topology_8x8__.m
% ./noxim -routing oddeven -sel random -dimx 8 -dimy 8  -sim 10000 -warmup 2000 -size 8 8 -buffer 8 

function [max_pir, max_throughput, min_delay] = routing_oddeven__sel_random__topology_8x8__(symbol)

data = [
%             pir      avg_delay     throughput      max_delay       rpackets         rflits
             0.01        24.8614      0.0815137            144           5215          41735
             0.01        23.3372       0.079168            117           5065          40534
             0.01        22.5975      0.0799883            126           5120          40954
             0.01        23.5468      0.0791699            164           5068          40535
             0.01        23.8427      0.0824063            159           5276          42192
             0.01        23.7231      0.0804531            131           5150          41192
             0.01        22.9627      0.0804629            110           5151          41197
             0.01        23.3614      0.0789629            129           5055          40429
             0.01        23.5433       0.079791            139           5108          40853
             0.01        23.2636      0.0808633            157           5174          41402
             0.01        23.5953         0.0795            124           5088          40704
             0.01        23.3408      0.0797148            140           5102          40814
             0.01        22.8761      0.0785449            126           5029          40215
             0.01        22.7689      0.0804336            127           5144          41182
             0.01        24.2755      0.0798418            154           5110          40879
             0.01        22.8119       0.080498            131           5152          41215
             0.01        24.3205      0.0801953            134           5133          41060
             0.01          22.91      0.0779336            146           4989          39902
             0.01        23.5568      0.0792852            164           5070          40594
             0.01        23.3971      0.0805098            150           5155          41221
            0.011         25.312       0.088334            159           5654          45227
            0.011        25.4225      0.0892207            187           5709          45681
            0.011        26.8243      0.0884941            169           5664          45309
            0.011        24.9395      0.0901523            158           5771          46158
            0.011        25.4046      0.0874043            156           5595          44751
            0.011         26.289      0.0897422            152           5744          45948
            0.011        25.1825      0.0888672            181           5689          45500
            0.011        26.0301      0.0896777            155           5739          45915
            0.011        25.4882      0.0861484            195           5512          44108
            0.011        25.2171      0.0886426            117           5674          45385
            0.011        25.0158      0.0871543            151           5580          44623
            0.011        26.0851      0.0873711            156           5593          44734
            0.011        24.6902      0.0873828            127           5594          44740
            0.011        25.6704      0.0890566            163           5700          45597
            0.011        24.6784      0.0868047            129           5557          44444
            0.011        24.3276      0.0866914            153           5549          44386
            0.011        25.6208      0.0881445            193           5644          45130
            0.011        24.8032      0.0874492            160           5595          44774
            0.011        25.8643       0.088625            174           5667          45376
            0.011        25.4195      0.0878242            142           5623          44966
            0.012        28.6352      0.0957695            186           6130          49034
            0.012        28.3536      0.0976641            220           6248          50004
            0.012        27.6863      0.0973066            196           6229          49821
            0.012        26.1591      0.0940879            154           6021          48173
            0.012        27.4365      0.0955215            154           6114          48907
            0.012        27.1617      0.0948945            191           6073          48586
            0.012        28.7195      0.0964727            203           6178          49394
            0.012        27.1547      0.0960781            158           6148          49192
            0.012        27.6311      0.0952676            153           6100          48777
            0.012        28.3196      0.0946836            165           6060          48478
            0.012        29.3259      0.0979336            215           6268          50142
            0.012        27.1741      0.0942441            143           6032          48253
            0.012        28.4416      0.0960703            174           6152          49188
            0.012        28.0211       0.095543            280           6114          48918
            0.012        27.5823      0.0947891            239           6067          48532
            0.012          27.45      0.0958633            170           6135          49082
            0.012        28.5105      0.0949844            251           6076          48632
            0.012        26.7444      0.0948496            141           6069          48563
            0.012        27.8997      0.0938145            150           6003          48033
            0.012        27.9366       0.095418            168           6105          48854
            0.013        32.0751       0.104787            281           6710          53651
            0.013        29.7368       0.101625            164           6504          52032
            0.013        32.7674       0.104693            323           6702          53603
            0.013        33.0074       0.105684            343           6765          54110
            0.013        31.8682       0.105621            263           6759          54078
            0.013        30.4821       0.100789            193           6451          51604
            0.013        32.5244       0.104828            291           6710          53672
            0.013        32.7944       0.105998            231           6784          54271
            0.013        30.2374       0.105041            206           6719          53781
            0.013        30.8147       0.105135            167           6728          53829
            0.013        30.8163       0.104361            178           6679          53433
            0.013        31.6048       0.101869            233           6518          52157
            0.013        29.5434       0.103889            164           6649          53191
            0.013        30.9979       0.104639            182           6697          53575
            0.013        31.1828       0.103443            179           6620          52963
            0.013          31.54       0.102316            221           6545          52386
            0.013        30.3317       0.103551            198           6630          53018
            0.013        30.5961       0.101646            250           6506          52043
            0.013         29.567       0.103863            167           6645          53178
            0.013        32.3415       0.103129            306           6603          52802
            0.014        41.2829       0.112555            344           7204          57628
            0.014        35.2312       0.112297            267           7188          57496
            0.014        34.5184       0.110953            246           7104          56808
            0.014        34.9434       0.110229            378           7055          56437
            0.014         46.177       0.112902            489           7226          57806
            0.014        36.5388       0.112406            526           7192          57552
            0.014        32.9557       0.108533            283           6946          55569
            0.014        34.5057       0.109658            247           7018          56145
            0.014        36.4046       0.112582            318           7207          57642
            0.014        34.4091       0.112236            274           7181          57465
            0.014        33.8746       0.111223            235           7116          56946
            0.014         33.826       0.110248            232           7057          56447
            0.014         32.135         0.1111            194           7113          56883
            0.014        33.1795       0.110156            210           7054          56400
            0.014        35.5323       0.109045            318           6981          55831
            0.014        36.3922       0.110836            363           7098          56748
            0.014        35.2966        0.11266            319           7215          57682
            0.014        38.6373       0.113365            314           7256          58043
            0.014        34.1239       0.111225            257           7119          56947
            0.014        36.6921       0.109738            326           7021          56186
            0.015         58.387       0.119795            885           7666          61335
            0.015        38.7932        0.11792            330           7548          60375
            0.015        46.6378       0.120141            691           7689          61512
            0.015        51.9902       0.119887            633           7673          61382
            0.015        40.6651       0.118816            309           7603          60834
            0.015        48.9376       0.120604            485           7720          61749
            0.015        247.812       0.121957           3098           7805          62442
            0.015        41.2595       0.119434            393           7646          61150
            0.015        38.7483        0.11932            378           7641          61092
            0.015        113.023       0.121229           1824           7760          62069
            0.015        40.0275       0.119363            319           7640          61114
            0.015        39.1074       0.117879            317           7545          60354
            0.015        45.7622       0.121557            323           7781          62237
            0.015        40.7677       0.119693            266           7662          61283
            0.015        40.8058        0.11917            470           7628          61015
            0.015        39.1882       0.118912            302           7616          60883
            0.015        80.6346        0.11577           1292           7405          59274
            0.015        47.8644       0.119023            564           7619          60940
            0.015        41.2902       0.120338            267           7697          61613
            0.015        60.8025       0.120883            658           7737          61892
            0.016        46.4837       0.128809            294           8241          65950
            0.016        229.312       0.124326           2313           7958          63655
            0.016        72.3678       0.127922            921           8187          65496
            0.016        66.3792        0.12823            639           8205          65654
            0.016        62.1843       0.131379            639           8405          67266
            0.016         45.639       0.128377            356           8218          65729
            0.016        225.839       0.114615           2912           7341          58683
            0.016        260.077       0.121488           3374           7770          62202
            0.016        74.1594       0.128148            929           8197          65612
            0.016        133.047       0.121291           1759           7761          62101
            0.016        89.2724       0.128109            932           8204          65592
            0.016        274.863       0.119566           3549           7648          61218
            0.016        73.7691       0.126988            998           8124          65018
            0.016        410.083        0.11702           4234           7490          59914
            0.016        84.7911       0.129443           1004           8280          66275
            0.016        334.505       0.115377           4577           7384          59073
            0.016        53.4928       0.129318            523           8276          66211
            0.016        69.6819       0.126162            702           8076          64595
            0.016        391.602       0.115109           4117           7365          58936
            0.016        190.583       0.119285           3248           7634          61074
            0.017        965.538       0.114914           7169           7357          58836
            0.017        733.277       0.114865           6132           7352          58811
            0.017         315.89       0.119197           5158           7625          61029
            0.017        883.751      0.0982402           8138           6286          50299
            0.017        629.176       0.106471           6972           6818          54513
            0.017        637.992       0.109107           6986           6980          55863
            0.017        721.428       0.105719           5503           6765          54128
            0.017        646.884         0.1146           6206           7335          58675
            0.017        360.912       0.113904           4841           7289          58319
            0.017        81.7261       0.131174           1178           8395          67161
            0.017        525.807       0.120203           5459           7693          61544
            0.017        129.956        0.12802           1990           8198          65546
            0.017        529.314       0.117885           5070           7543          60357
            0.017        592.368       0.112998           7268           7233          57855
            0.017        617.019       0.114154           6621           7310          58447
            0.017        518.756       0.113922           5321           7285          58328
            0.017        479.963       0.115732           5697           7407          59255
            0.017        451.671       0.121992           4854           7802          62460
            0.017        582.229       0.105586           5163           6760          54060
            0.017        370.337       0.112787           4216           7218          57747
            0.018        641.922        0.11133           7252           7129          57001
            0.018        618.404       0.107924           6892           6908          55257
            0.018        743.738       0.109314           6921           6995          55969
            0.018        965.306         0.0985           8157           6305          50432
            0.018        772.041      0.0971465           7776           6215          49739
            0.018        923.526       0.102408           7559           6556          52433
            0.018        1179.07      0.0952422           7754           6094          48764
            0.018         882.72        0.10483           6975           6713          53673
            0.018          652.2       0.110135           7085           7051          56389
            0.018        666.393       0.100994           7177           6464          51709
            0.018        806.261       0.105732           6419           6767          54135
            0.018        763.564       0.107168           6826           6862          54870
            0.018        979.749      0.0983594           7433           6299          50360
            0.018        1043.36      0.0976074           8074           6249          49975
            0.018        670.408       0.100115           7628           6412          51259
            0.018         1113.5       0.096082           8900           6146          49194
            0.018        771.384         0.1019           7455           6520          52173
            0.018        443.036       0.117057           5139           7487          59933
            0.018        686.717       0.097084           6773           6213          49707
            0.018        576.826        0.10408           7190           6660          53289
            0.019         1019.8       0.100682           8243           6442          51549
            0.019        938.601       0.108051           7990           6919          55322
            0.019        900.286       0.110947           7499           7100          56805
            0.019        1007.85      0.0973164           7188           6225          49826
            0.019        1146.42      0.0964648           8049           6171          49390
            0.019        832.214       0.100818           8694           6450          51619
            0.019        1064.93      0.0972383           8405           6221          49786
            0.019        1089.73       0.101109           8041           6474          51768
            0.019        1171.61      0.0972246           8312           6222          49779
            0.019        866.739       0.104012           7399           6652          53254
            0.019        1016.35        0.10334           7288           6609          52910
            0.019        1134.44       0.098498           7977           6305          50431
            0.019        1048.08       0.101393           7678           6488          51913
            0.019        1064.05       0.097498           8509           6243          49919
            0.019        984.601        0.10284           8432           6582          52654
            0.019        1020.63      0.0991074           8583           6339          50743
            0.019        826.869       0.105664           7213           6761          54100
            0.019        1141.01       0.102404           7762           6551          52431
            0.019        992.559       0.104787           8167           6709          53651
            0.019        1015.57       0.104045           8568           6658          53271
             0.02         1245.6      0.0941211           8466           6023          48190
             0.02        1031.65      0.0970195           8393           6209          49674
             0.02        1105.67      0.0969434           8079           6209          49635
             0.02        1321.14      0.0935664           8433           5982          47906
             0.02        1132.73      0.0980293           8090           6277          50191
             0.02        1167.89       0.102717           8566           6570          52591
             0.02        1101.04       0.091291           8284           5839          46741
             0.02        1364.39      0.0929512           8501           5949          47591
             0.02        1160.31       0.100861           7912           6454          51641
             0.02        1312.67      0.0938535           8434           6009          48053
             0.02        1395.39      0.0929277           8876           5947          47579
             0.02        1055.65       0.101387           8723           6488          51910
             0.02        1116.46      0.0957188           8706           6128          49008
             0.02        1285.93      0.0946211           9193           6056          48446
             0.02        1097.93      0.0970645           8259           6209          49697
             0.02        1112.49       0.102266           8543           6544          52360
             0.02        1200.17      0.0933555           8549           5979          47798
             0.02        1271.22      0.0983184           8595           6291          50339
             0.02         1074.1      0.0992969           8637           6358          50840
             0.02        1115.36      0.0982187           7994           6287          50288
];

rows = size(data, 1);
cols = size(data, 2);

data_delay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+1);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_delay = [data_delay; data(ifirst, 1:cols-5), avg ci];
end

figure(1);
hold on;
plot(data_delay(:,1), data_delay(:,2), symbol);

data_throughput = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+2);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_throughput = [data_throughput; data(ifirst, 1:cols-5), avg ci];
end

figure(2);
hold on;
plot(data_throughput(:,1), data_throughput(:,2), symbol);

data_maxdelay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+3);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_maxdelay = [data_maxdelay; data(ifirst, 1:cols-5), avg ci];
end

figure(3);
hold on;
plot(data_maxdelay(:,1), data_maxdelay(:,2), symbol);


%-------- Saturation Analysis -----------
slope=[];
for i=2:size(data_throughput,1),
    slope(i-1) = (data_throughput(i,2)-data_throughput(i-1,2))/(data_throughput(i,1)-data_throughput(i-1,1));
end

for i=2:size(slope,2),
    if slope(i) < (0.95*mean(slope(1:i)))
        max_pir = data_throughput(i, 1);
        max_throughput = data_throughput(i, 2);
        min_delay = data_delay(i, 2);
        break;
    end
end
